package com.qf.common.persistence;

import com.qf.common.util.IdGen;
import lombok.Data;

import java.util.Date;

@Data
public abstract class DataEntity<T> extends BaseEntity<T> {

    protected String remarks;	// 备注
    protected Date createDate;	// 创建日期
    protected Date updateDate;	// 更新日期
    protected String delFlag; 	// 删除标记（0：正常；1：删除；2：审核）
    private String createByName;		// 创建者
    private String updateByName;		// 更新者
    private String createById; // 创建者id
    private String updateById; // 创建者id

    public DataEntity() {
        super();
        this.delFlag = DEL_FLAG_NORMAL;
    }

    public void preInsert() {
        this.preInsert(true);
    }

    /**
     * 插入之前执行方法，需要手动调用
     *
     * @param setIdFlag 是否设置ID true:设置 false: 不设置
     */
    public void preInsert(boolean setIdFlag) {
        // 不限制ID为UUID，调用setIsNewRecord()使用自定义ID
        if (setIdFlag && !this.isNewRecord){
            setId(IdGen.uuid());
        }

        this.updateDate = new Date();
        this.createDate = this.updateDate;
    }

    /**
     * 更新之前执行方法，需要手动调用
     */
    public void preUpdate() {
        this.updateDate = new Date();
    }
}
